package youcheng.work.view_zhexian;

import android.app.Activity;
import android.bluetooth.BluetoothAdapter;
import android.bluetooth.BluetoothDevice;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

import java.util.ArrayList;
import java.util.List;

public class BlueToothControl {

    private BluetoothAdapter mAdapter;

    public BlueToothControl(){
        mAdapter = BluetoothAdapter.getDefaultAdapter();//获取默认适配器
    }

    /*判断是否支持蓝牙*/
    public boolean isSupportBlueTooth(){
        if( mAdapter != null){
            return true;
        }
        else{
            return false;
        }
    }

    /*判断当前蓝牙状态*/
    public boolean blueisenable() {
        if (mAdapter.isEnabled()) {
            return true;
        } else {
            return false;
        }
    }
    public boolean getBlueToothStatus(){
        assert (mAdapter != null);
        return mAdapter.isEnabled();
    }

    /*打开蓝牙*/
    public void turnOnBlueTooth(Activity activity, int requestCode){
        //设置一个请求启用的行为
        Intent intent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
        //该函数会调用回调函数
        activity.startActivityForResult(intent, requestCode);
       // mAdapter.enable();

    }
    /*关闭蓝牙*/
    public void turnOffBlueTooth(){
        mAdapter.disable();
    }

    /*
   打开蓝牙可见性
    */
    public void enableVisibly(Context context) {
        //默认是120秒 设置蓝牙适配器为可见的 ，intent传一个参数给系统，系统询问是否可见 运行则可见
        Intent discoverableIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_DISCOVERABLE);
        //一个参数设置设备可见的时间为300s(最多300s)
        /* putExtra(“A”,B)中，AB为键值对，第一个参数为键名，第二个参数为键对应的值。顺便提一下，如果想取出Intent对象中的这些值，需要在你的另一个Activity中用getXXXXXExtra方法，注意需要使用对应类型的方法，参数为键名*/
        discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION, 300);
        //设备不止一个通过广播获取 。只有一个就可以用startactivityforresult
        context.startActivity(discoverableIntent);
    }

    /*
    搜索设备
     */
    public void findDevice(){
        assert(mAdapter != null);
        mAdapter.startDiscovery();//开始查找设备 异步函数 查找设备后需要监听广播获取查找到的其他设备
        Log.i("TAG","llll");
    }

    /*
    查看已绑定设备
     */
    public List<BluetoothDevice> getBondedDeviceList(){
        return new ArrayList<>(mAdapter.getBondedDevices());
    }
}
